FindingPheno demonstration

Wednesday, October 8, 2025

Challenges

Lack of…

  1. robust methods for multi-table data
  2. standardized, user-friendly approaches
  3. linkage between data resources and analytical workflows
FindingPheno logo.

1. Robust methods for multi-table data

  • Community-driven open-source project
  • High-quality, tested statistical methods
  • Well-documented
Bioconductor logo.

2. Standardized, user-friendly approaches

  • Methods for microbiome data science
  • Online book
  • Graphical user interface

mia logo.

3. Linkage between data resources and analytical workflows

Demonstration

# Get data from HoloFood database
mae <- HoloFoodR::getResult(ids)

# Get data from HoloFood database
mae <- HoloFoodR::getResult(ids)

# Get data from MGnify database
tse <- MGnifyR::getResult(ids)

# Get data from HoloFood database
mae <- HoloFoodR::getResult(ids)

# Get data from MGnify database
tse <- MGnifyR::getResult(ids)

# Merge datasets
mae <- addMGnify(tse, mae)

# Get data from HoloFood database
mae <- HoloFoodR::getResult(ids)

# Get data from MGnify database
tse <- MGnifyR::getResult(ids)

# Merge datasets
mae <- addMGnify(tse, mae)

print(mae)
A MultiAssayExperiment object of 2 listed
 experiments with user-defined names and respective classes.
 Containing an ExperimentList class object of length 2:
 [1] microbiota: TreeSummarizedExperiment with 262 rows and 40 columns
 [2] metabolites: TreeSummarizedExperiment with 38 rows and 40 columns
Functionality:
 experiments() - obtain the ExperimentList instance
 colData() - the primary/phenotype DataFrame
 sampleMap() - the sample coordination DataFrame
 `$`, `[`, `[[` - extract colData columns, subset, or experiment
 *Format() - convert into a long or wide DataFrame
 assays() - convert ExperimentList to a SimpleList of matrices
 exportClass() - save data to flat files

colData(mae)
DataFrame with 40 rows and 5 columns
         Sample Animal_id        Site Treatment_group Animal_type
    <character>  <factor> <character>        <factor> <character>
C1           C1         1       Cecum               2     chicken
C2           C2         2       Cecum               2     chicken
C3           C3         3       Cecum               2     chicken
C4           C4         4       Cecum               2     chicken
C5           C5         5       Cecum               2     chicken
...         ...       ...         ...             ...         ...
C36         C36        36       Cecum               1     chicken
C37         C37        37       Cecum               1     chicken
C38         C38        38       Cecum               1     chicken
C39         C39        39       Cecum               1     chicken
C40         C40        40       Cecum               1     chicken

library(mia)
library(miaViz)

plotAbundance(mae[["microbiota"]], rank = "Phylum")

# Calculate diversity within sample
mae[["microbiota"]] <- addAlpha(mae[["microbiota"]])

# Calculate diversity within sample
mae[["microbiota"]] <- addAlpha(mae[["microbiota"]])

# Visualize them
plotBoxplot(mae[["microbiota"]],
    col.var = "shannon_diversity", x = "Treatment_group")

# Run PCA
mae[["microbiota"]] <- runPCA(mae[["microbiota"]])

# Run PCA
mae[["microbiota"]] <- runPCA(mae[["microbiota"]])

# Visualize PCA
plotReducedDim(mae[["microbiota"]], "PCA")

plotLoadings(mae[["microbiota"]])

library(MOFA2)

model <- run_mofa(mae)

plot_variance_explained(model)

plot_top_weights(model)

Screenshot from miaDash.

Screenshot from OMA.

Thank you for your time!

FindingPheno logo.

Orchestrating Microbiome Analysis online book

References